package com.sxkf.template.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.geo.Distance;

/**
 * <p>
 * 
 * </p>
 *
 * @author 杨玉龙
 * @since 2024-12-05 16:27:24
 */
@Getter
@Setter
@TableName("t_user")
@ApiModel(value = "User对象", description = "")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("用户编号ID")
      @TableId("id")
    private String id;

    @ApiModelProperty("微信用户编号")
    @TableField("open_id")
    private String openId;

    @ApiModelProperty("网易云信imToken")
    @TableField("im_token")
    private String imToken;

    @ApiModelProperty("账号")
    @TableField("username")
    private String username;

    @ApiModelProperty("密码")
    @TableField("password")
    private String password;

    @ApiModelProperty("用户昵称")
    @TableField("nick_name")
    private String nickName;

    @ApiModelProperty("手机号")
    @TableField("phone")
    private String phone;

    @ApiModelProperty("邮箱")
    @TableField("email")
    private String email;

    @ApiModelProperty("用户头像")
    @TableField("avatar")
    private String avatar;

    @ApiModelProperty("性别（0男，1女）")
    @TableField("gender")
    private String gender;

    @ApiModelProperty("年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty("账户余额")
    @TableField("amount")
    private BigDecimal amount;

    @ApiModelProperty("实名状态（0未实名，1实名）")
    @TableField("is_auth")
    private String isAuth;

    @ApiModelProperty("自我简介")
    @TableField("self_introduce")
    private String selfIntroduce;

    @ApiModelProperty("所在地区")
    @TableField("region")
    private String region;

    @ApiModelProperty("主页背景")
    @TableField("main_picture")
    private String mainPicture;

    @ApiModelProperty("逻辑删除用户（0存在，1删除）")
    @TableField("is_deleted")
    private String isDeleted;

    @ApiModelProperty("出生日期")
    @TableField("birth")
    private Date birth;

    @ApiModelProperty("行业")
    @TableField("industry")
    private String industry;

    @ApiModelProperty("兴趣")
    @TableField("interesting")
    private String interesting;

    @ApiModelProperty("背景图")
    @TableField("background")
    private String background;

    @ApiModelProperty("个人二维码")
    @TableField("qr_code")
    private String qrCode;

    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty("更新时间(最后一次登录时间)")
      @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty("粉丝数")
    @TableField("fans_count")
    private Integer fansCount;

    @ApiModelProperty("关注用户数")
    @TableField("follower_count")
    private Integer followerCount;

    @ApiModelProperty("关注店铺数")
    @TableField("store_count")
    private Integer storeCount;

    @ApiModelProperty("好友数")
    @TableField("friend_count")
    private Integer friendCount;

    @ApiModelProperty("版本号")
    @TableField("version")
    @Version
    private Long version;

    @ApiModelProperty("真实姓名")
    @TableField("real_name")
    private String realName;

    @ApiModelProperty("身份证号")
    @TableField("id_card")
    private String idCard;

    @ApiModelProperty("邀请人id")
    @TableField("inviter_id")
    private String inviterId;

    @TableField("is_online")
    @ApiModelProperty(value = "是否在线")
    private String isOnline;

    @ApiModelProperty("验证码")
    @TableField(exist = false)
    private String code;

    @ApiModelProperty("红包")
    @TableField(exist = false)
    private Long hongbao;

    @ApiModelProperty("是否回关 (0=否 1=是)")
    @TableField(exist = false)
    private String isEach;

    @TableField(exist = false)
    @ApiModelProperty(value = "关注时间")
    private Date likeTime;

    @TableField(exist = false)
    @ApiModelProperty(value = "点赞数")
    private Long postLikeCount;


    @TableField(exist = false)
    private Distance distance;
}
